package system

import (
	"context"
	"server/internal/consts"
	"strings"
)

// 文件主要编写配置项中需要验证配置项内容的方法

// checkContent 检测配置项内容格式正确性
func (s *sSystemConfig) checkContentIsValid(ctx context.Context, code string, data string) bool {
	switch code {
	case consts.ConfigCodeBaseSystemUserDefaultPassword:
		// 检测默认密码
		return s.checkContentFuncBaseSystemUserDefaultPassword(data)
	//case consts.ConfigCodeWsServerClearTimeoutConnCrontabPattern:
	//	// 检测 websocket 定时清理器的定时任务表达式格式
	//	return crontab.CheckTaskPatternIsValid(gctx.GetInitCtx(), data)
	case consts.ConfigCodeFileServerUploadAllowExtensions:
		// 检测文件上传允许的扩展名
		return s.checkContentFuncFileServerUploadAllowExtensions(data)

	default:
		// 默认通过验证
		return true
	}
}

func (s *sSystemConfig) checkContentFuncBaseSystemUserDefaultPassword(data string) bool {
	return len(data) > 0
}

func (s *sSystemConfig) checkContentFuncFileServerUploadAllowExtensions(data string) bool {
	items := strings.Split(data, ",")
	if len(items) == 0 {
		return false
	}
	return true
}
